package singleton.normal;

/**
 * Title: SingletonRecommend <br>
 * Description:推荐的单例写法 :通过静态内部类实现的单例模式<br>
 * Copyright (c) 传化物流版权所有 2017 <br>
 * Created DateTime: 2017-3-7 13:21
 * Created by Wentao.Shi.
 */

/**
 *
 * 当第一次加载 Singleton 类时并不会初始化 instance ，只有在第一次调用 getInstance 方法时才会加载 SingletonHolder 类并初始化 instance。
 * 这种方法不仅能确保线程安全，也能够保证对象的唯一性，同时也延迟了单例的实例化，这样就解决了低性能问题,所以这是推荐的单例模式实现方式。
 */
public class SingletonRecommend {
    private SingletonRecommend(){

    }
    public static SingletonRecommend getInstance() {
        return SingletonHolder.instance;
    }

    private static class SingletonHolder {
        private static final SingletonRecommend instance = new SingletonRecommend();
    }
}
